<?php
/**
 * @author Jhonatan S. Serafim
 * @since 04/07/2011
 */
class SGObjeto {
	
	protected $serialVersao = '1.0';
	
	public function __construct(){}
	
	public function __call($metodo, $args){
		if(strpos($metodo, 'get') === 0 && count($args) == 0) {
			return $this->{$this->nomeVariavel(3, $metodo)};
		}elseif(strpos($metodo, 'set') === 0 && count($args) == 1) {
			$this->{$this->nomeVariavel(3, $metodo)} = $args[0];
			return $this;
		}else throw new SGObjetoException('Erro ao chamar o método: "'.$metodo.'"');
	}
	
	protected function nomeVariavel($indexStart, $metodo){
		$nomeVariavel = substr($metodo, $indexStart, strlen($metodo));
		$nomeVariavel[0] = strtolower($nomeVariavel[0]);
		return $nomeVariavel;
	}
	
	public function __toString(){
		return get_class($this).'@'.$this->serialVersao;
	}
	
}
?>